/**
 * 模型类demo案例
 */

import * as Cesium from "cesium";
import * as EasyCesium from "@xhymf1992/easy-cesium";

export function drawModelEntity() {

    let position = Cesium.Cartesian3.fromDegrees(120, 30, 100);
        
    let options = {
        id: "model-entity", // entity对象id，具有唯一性，必填
        name: "model-entity", // entity的名称，可选，默认为空
        show: true, // 是否显示，可选，默认显示
        heading: 0, // 绕局部坐标系Z轴顺时针旋转角度(弧度制)，可选，默认为0
        pitch: 0, // 绕局部坐标系Y轴顺时针旋转角度(弧度制)，可选，默认为0，朝向正北
        roll: 0, // 绕局部坐标系X轴逆时针旋转角度(弧度制)，可选，默认为0
        coordAxisShow: true, // 是否显示模型局部坐标系(初始为X轴朝向正东，Y轴朝向正北，Z轴朝向垂直地表向上)，可选，默认为false
        coordAxisLength: 100, // 坐标轴长度，可选，默认为500
        coordAxisWidth: 5, // 坐标轴宽度，可选，默认为5
        position: position, // 模型坐标，必填
        uri: "https://hz.gridworld.com.cn:50443/te3/di/get_file/Cesium_Man.glb/", // 模型链接，必选
        scale: 2, // 模型缩放大小，可选，默认为1
        minimumPixelSize: 128, // 模型最小像素大小，可选，默认为0
        runAnimations: true, // 是否启动动画，可选，默认为true
        clampAnimations: true, // 在没有关键帧的持续时间内是否保持最后一个动作，可选，默认为true
        heightReference: 0, // 高程类型：0-海拔；1-贴在地表或3dtiles；2-相对于地表或3dtiles；3-贴在地表；4-相对于地表；5-贴在3dtiles；6-相对于3dtiles，可选，默认为0
        silhouetteColor: "rgba(255,0,0,1)", // 轮廓的颜色，可选，默认为红色
        silhouetteSize: 0.0, // 轮廓大小，可选，默认为0 (不显示轮廓)
        color: "rgba(255,255,255,1.0)", // 模型颜色，该颜色将与模型自身的颜色进行混合，可选，默认为白色
        colorBlendMode: 0, // 混合模式：0-高亮（颜色相乘）；1-替换（覆盖原有颜色）；2-比例混合. 可选，默认为0
        colorBlendAmount: 0.5, // 混合模式为2时，该值表示输入颜色的占比(0.0-1.0)，当为1时为覆盖. 可选，默认为0.5
        constant: true, // 是否是静态的，可选，默认为是，当为false时，参数变为时变类型，适用于经常变化的情况
        viewer: window.viewer // cesium视图对象，必填
    };

    // @ts-ignore
    window.model = new EasyCesium.ModelEntity(options);
    // @ts-ignore
    window.model.init();
    // @ts-ignore
    window.model.flyTo();

    // // 切换模型显隐
    // window.model.show = false;
    // window.model.show = true;

    // // 切换局部坐标系显隐
    // window.model.coordAxisShow = false;
    // window.model.coordAxisShow = true;

    // // 修改模型朝向
    // window.model.heading = Math.PI / 2;
    // window.model.pitch = Math.PI / 2;
    // window.model.roll = Math.PI / 2;

    // // 修改模型缩放比例
    // window.model.scale = 5000;

    // // 打开/关闭模型动画
    // window.model.runAnimations = true;
    // window.model.runAnimations = false;

    // // 模型贴地表
    // window.model.heightReference = 1;

    // // 修改轮廓宽度和颜色
    // window.model.silhouetteSize = 1.0;
    // window.model.silhouetteColor = "rgba(255,255,0,1)";

    // // 修改模型颜色
    // window.model.color = "rgba(255,255,0,1)";

    // // 修改模型混合模式
    // window.model.colorBlendMode = 0;
    // window.model.colorBlendMode = 1;
    // window.model.colorBlendMode = 2;

    
    // // 销毁entity
    // window.model.destroy();
}